import axios from '@/utils/request'
// 文章-获取列表
export const getAllArticleListAPI = ({ channel_id, timestamp }) =>
  axios({
    url: '/v1_0/articles',
    method: 'GET',
    params: {
      // 这里的参数，axios会帮你拼接URL？后面（查询字符串）
      channel_id,
      timestamp
    }
  })

// 文章-不敢兴趣
export const dislikeArticleAPI = ({ artId }) =>
  axios({
    url: '/v1_0/article/dislikes',
    method: 'POST',
    data: {
      target: artId
    }
  })

// 文章-反馈-反馈垃圾内容
export const reportArticleAPI = ({ artId, type }) =>
  axios({
    url: '/v1_0/article/reports',
    method: 'POST',
    data: {
      target: artId,
      type: type,
      remark:
        '如果你想写，可以在逻辑页面判断下，如果点击类型是0，再给一个弹出输入框输入其他问题，传参到这里'
    }
  })

// 文章-获取详情
export const detailAPI = ({ artId }) =>
  axios({
    url: `/v1_0/articles/${artId}`,
    method: 'GET'
  })

// 文章-点赞
export const likeArticleAPI = ({ artId }) =>
  axios({
    url: '/v1_0/article/likings',
    method: 'POST',
    data: {
      target: artId
    }
  })

// 文章-取消点赞
export const unLikeArticleAPI = ({ artId }) =>
  axios({
    url: `/v1_0/article/likings/${artId}`,
    method: 'DELETE'
  })

// 文章-评论列表
export const commentsListAPI = ({ id, offset = null, limit = 10 }) =>
  axios({
    url: '/v1_0/comments',
    method: 'GET',
    params: {
      // axios只针对params参数。如果发现键值对，值为null,会忽略此参数名和值不携带在url?后面
      type: 'a', // 什么时候需要外面传：此值会变化
      source: id,
      offset,
      limit
    }
  })

// 文章-评论-发布评论
export const commentSendAPI = ({ id, content, art_id = null }) => {
  // axios中，data请求体传参，如果值为null是不会忽略这个参数的，也会把参数名和值携带给后台（只有params遇到null才会忽略）
  const obj = {
    target: id,
    content
  }
  if (art_id !== null) {
    // art_id如果不为空，说明是对评论进行回复
    obj.art_id = art_id
  }
  return axios({
    url: '/v1_0/comments',
    method: 'POST',
    data: obj
  })
}
